]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
overview: Use monotonic time to check for consecutive activations
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 15 Jan 2018 14:36:44 +0000 (15:36 +0100)
committerFlorian Müllner <florian.muellner@gmail.com>
Fri, 13 Apr 2018 09:13:45 +0000 (09:13 +0000)
We don't toggle the overview if the request happens too close to the
last activation, to filter out double-clicks or activation by both
the hot corner and a click. However as the check is based on the
real time, the check breaks if the system clock moves backwards and
the last activations appears to be in the future. Fix this by using
monotonic time which is guaranteed to only move forward.

https://bugzilla.gnome.org/show_bug.cgi?id=763886

js/ui/overview.js

index 3d8d76b57beb5622c4c8e614194c884a13d95e49..224057640722a6c9186d1fe4ac74b80cf7642c4e 100644 (file)
@@ -488,7 +488,8 @@ var Overview = new Lang.Class({
             return false;
         if (this._inItemDrag || this._inWindowDrag)
             return false;
-        if (this._activationTime == 0 || Date.now() / 1000 - this._activationTime > OVERVIEW_ACTIVATION_TIMEOUT)
+        if (this._activationTime == 0 ||
+            GLib.get_monotonic_time() / GLib.USEC_PER_SEC - this._activationTime > OVERVIEW_ACTIVATION_TIMEOUT)
             return true;
         return false;
     },
@@ -547,7 +548,7 @@ var Overview = new Lang.Class({
         this.visible = true;
         this.animationInProgress = true;
         this.visibleTarget = true;
-        this._activationTime = Date.now() / 1000;
+        this._activationTime = GLib.get_monotonic_time() / GLib.USEC_PER_SEC;
 
         Meta.disable_unredirect_for_screen(global.screen);
         this.viewSelector.show();